package HBase;

import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;


public class HBaseConnect {
    // Todo HBase 多线程创建连接
    public static Connection connection = null;

    static {
        // 创建HBase连接
        try {
            // 使用配置文件的方法  (源码中可以看出)
            connection = ConnectionFactory.createConnection();
        } catch (IOException e) {
            System.out.println("连接获取失败");
            throw new RuntimeException(e);
        }
    }

    /**
     * 连接关闭方法,用于进程关闭时调用
     *
     */
    public static void closeConnection() throws IOException {
        if (connection != null) connection.close();
    }


    public static void main(String[] args) throws IOException {

// Todo HBase 单线程创建连接

//        // 1. 创建配置对象
//        Configuration conf = new Configuration();
//
//        // 2. 添加配置参数
//        conf.set("hbase.zookeeper.quorum", "master,slave1,slave2");
//
//        // 3. 创建hbase的连接
//        // 默认使用同步连接
//        Connection connection = ConnectionFactory.createConnection(conf);
//
//        // 可以使用异步连接
//        // 主要影响后续的DML操作
//        CompletableFuture<AsyncConnection> asyncConnection = ConnectionFactory.createAsyncConnection(conf);
//
//        // 4. 使用连接
//        System.out.println(connection);
//
//        // 5. 关闭连接
//        connection.close();


        System.out.println(connection);
        closeConnection();
    }
}
